<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    </head>
<?php
    include_once "config/config.php";  
    include_once "functions/getnames.php"; 
    include_once "functions/genericfunctions.php";
    if (!isset($_SESSION)){session_start();} if (isset($_REQUEST['_SESSION'])) die("Get lost Muppet!");
    
    foreach ($_POST as $key => $value) {
        
        function will_strip_tags($str) {
            do {
                $ignore = array('<=', '<>', );
        
                $count = 0;
                if(!in_array($str, $ignore))
                    $str = preg_replace('/(<)([^>]*?<)/' , '&lt;$2' , $str , -1 , $count);
            } while ($count > 0);
            $str = strip_tags($str);
            $str = str_replace('>' , '&gt;' , $str);
            return $str;
        }
        //echo will_strip_tags($value);     
        $_POST[$key] = preg_replace('/[~!@#^&+:`\[\]\{\}]|http/', '', $value);
    }        
    
    $_POST['sql_code'] = escapeString($_POST['sql_code']);

//    $resultLink = 'index.php?result_select';
	  $resultLink = 'SELECTResult.php';	

    $_SESSION['stalas'] = false;      // masyvas. Suskaldyta eilute
    $_SESSION['metras'] = '';      // originalus vartotojo ivestas kodas
    $_SESSION['stogas'] = '';       // klaidos zinute
    $_SESSION['laimas'] = false;    // ar teisinga?
    $task = $_SESSION['seldata'];
    
    // bandom vartotojo ivesta komanda
    if (!empty($_POST['sql_code'])) {
        $posted = $_POST['sql_code'];
        $_SESSION['metras'] = $posted;  // originalus vartotojo ivestas kodas
        $_SESSION['stalas'] = true;

        $splittedquery = preg_split('/\s/m', $_POST['sql_code']);
        if (strtoupper($splittedquery[0]) != "SELECT") {
            $_SESSION['stogas'] .= '<p>Klaidinga SELECT užklausa</p>';
            $_SESSION['laimas'] = false;
            header("Location: $resultLink");
            exit();
        }
		else {
			$_SESSION['stalas'] = TRUE;	
		}

        try {
            $result = mysql_query($posted, $workDB);
            if ($result) {
                // ieskom kokius laukus ima vartotojas
                $p_fields = getColNames($result);
                $p_data = fillArrays($result, $p_fields);
                $p_tbl = getTableNames($result);
                
                // default
                $default = mysql_query("SELECT * FROM zmones", $workDB);
                if ($result) {
                    $d_fields = getColNames($default);
                }
                // teisingas atsakymas
				$c_komanda = $_SESSION['seldata'];

                try {
                    $c_result = mysql_query($c_komanda['komanda'], $workDB);
                   if ($c_result) {
                        $c_fields = getColNames($c_result);
                        $c_data = fillArrays($c_result, $c_fields);           
                        $c_tbl = getTableNames($c_result);
                        // tikrinama ar duomenys imami is tu paciu lenteliu
                        if($p_tbl == $c_tbl) {
                        	// Duomenys imami iš tų pačių lentelių. Darome prielaidą, kad 
                        	$_SESSION['laimas'] = TRUE;
							
                            // tikrinama ar stulpeliu vardai sutampa, sudaro rodyklini masyva                            
                            $indexes[] = array(); 
                            $k = 0;
                            for($i=0; $i < count($c_fields); $i++) {
                                if(!in_array($c_fields[$i], $p_fields)) {
                                    $k ++;
                                    switch ($k) {
                                        case 1:
                                            $_SESSION['stogas'] .= 'Trūksta lauko: <br />'.$c_fields[$i].'<br />';      // klaidos zinute
                                            break;
                                        default:
                                            $_SESSION['stogas'] .= $c_fields[$i].'<br />';      // klaidos zinute
                                            break;
                                    }
                                }
                                $indexes[$i] = array_search($c_fields[$i], $p_fields);
                            }
                            if(!empty($indexes)) {
                                // tikrina ar gautas masyvas tokio pacio ilgio kaip ir teisingas
                                if(count($p_data) == count($c_data)) {
                                    $_SESSION['laimas'] = true;     // darom prielaida, kad ivesta komanda teisinga

                                    for($i=0; $i < count($c_data); $i++) {
                                        $key = array_search($p_data[$i], $c_data);
                                        if (!$key) {
                                            $_SESSION['laimas'] = false; 
                                            $_SESSION['stogas'] = '<br /><br />Išrinkti neteisingi duomenys.<br />';
                                        } // paaiskejo, kad vis del to, neteisinga
                                        else {
                                        	$_SESSION['laimas'] = TRUE;
                                        }
                                    } 
                                }
                                else {
                                    $_SESSION['laimas'] = false;
                                    $_SESSION['stogas'] = $_SESSION['stogas'].'<br /><br />Išrinkti neteisingi duomenys.<br />';
                                }                                
                            }
                            
                        
                        } else {
                            $_SESSION['stogas'] = 'Neteisingas lentelės vardas. Duomenys turėjo būti paimti iš lentelės "'.$c_tbl.'".';
                        }
                    } else {
                         $_SESSION['stogas'] = mysql_error();
                    }                    
                } catch (Exception $e) {}
                
        

                
            } else {
                $_SESSION['stogas'] = mysql_error();
            }
   

        } catch (Exception $e) {     }

    }
    else {
        $_SESSION['stogas'] = 'Komanda neįvesta.';  // Klaidu eilute  
    }
    if ($_SESSION['laimas'] == true)
        $_SESSION['stogas'] = 'Duomenys išrinkti sėkmingai.'; 

    header('Location: '.$resultLink.'');
  
?>
</html>